﻿using System;
using SharpArch.Core.DomainModel;

namespace Magalie.Domaine
{    
    /// <summary>
    /// Demande de congé
    /// </summary>
    public class DemandeConge : EntityWithTypedId<Guid>
    {
        /// <summary>
        /// Personne réalisant la demande de congé
        /// </summary>
        public virtual string Utilisateur { get; set; }

        /// <summary>
        /// Date à laquelle la demande est faite
        /// </summary>
        public virtual DateTime DateDemande { get; set; }

        /// <summary>
        /// Date de début du congé
        /// </summary>
        public virtual DateTime DateDebutConge { get; set; }

        /// <summary>
        /// Date de fin du congé
        /// </summary>
        public virtual DateTime DateFinConge { get; set; }

        /// <summary>
        /// Nombre de jours de congés
        /// </summary>
        public virtual double NombreJours { get; set; }

        /// <summary>
        /// Statut de la demande
        /// </summary>
        public virtual StatutDemandeConge Statut { get; set; }
    }

    /// <summary>
    /// Statut des demandes de congés
    /// </summary>
    public enum StatutDemandeConge
    {
        /// <summary>
        /// Demande en attente de validation
        /// </summary>
        EnAttenteValidation,

        /// <summary>
        /// Demande acceptée
        /// </summary>
        Accepte,

        /// <summary>
        /// Demande refusée
        /// </summary>
        Refuse
    }
}
